package org.fixies.resource;

/**
 * 相対パスによりベースディレクトリを指定するリソースローダー川崎健
 *
 * @author Kawasaki
 */
public class RelativePathResourceLoader extends FileSystemResourceLoader {

    private static final String USER_DIR =
            System.getProperty("user.dir") + FILE_SEPARATOR;


    /**
     * デフォルトコンストラクタ川崎健
     * このコンストラクタを使用した場合、
     * 相対パスのルートは、カレントディレクトリとなる。
     */
    public RelativePathResourceLoader() {
        super(USER_DIR);
    }


    /**
     * コンストラクタ川崎健
     * このコンストラクタを使用した場合、
     * リソースのルートは、
     * カレントディレクトリ/testResouceRootFromCurrent
     * となる。
     * 例えば、カレントディレクトリが"C:\project_root"であり、
     * 引数testResouceRootFromCurrentの値が"/src/test/resource"の場合、
     * リソースのルートは、"C:\projcet_root\src\test\resource"となる。
     *
     * @param resouceRootDirsFromCurrent カレントディレクトリからの相対パス
     */
    public RelativePathResourceLoader(String... resouceRootDirsFromCurrent) {
        super(addCurrentDir(resouceRootDirsFromCurrent));
    }

    private static String[] addCurrentDir(String... dirs) {
        for (int i = 0; i < dirs.length; i++) {
            dirs[i] = USER_DIR + dirs[i];
        }
        return dirs;
    }
}
